#include "wtn_audio.h"

void wtn_audio_init(void){
    //TODO
    gpio_config_t io_conf = {
        .mode = GPIO_MODE_OUTPUT,
        .pull_up_en = 0,
        .pull_down_en = 0,
        .intr_type = GPIO_INTR_DISABLE,
        .pin_bit_mask = (1ULL << WTN_DATA_IO)
    };

    gpio_config(&io_conf);
    io_conf.mode = GPIO_MODE_INPUT;
    io_conf.pin_bit_mask = (1ULL << WTN_BUSY_IO);
    gpio_config(&io_conf);
}


void wtn_audio_play(uint8_t cmd)
{
    //TODO
    gpio_set_level(WTN_DATA_IO, 1);
    DelayUs(2000);
    gpio_set_level(WTN_DATA_IO, 0);
    DelayUs(5000);

    for(int i = 0; i < 8; i++){
        if(cmd & 0x01){
            gpio_set_level(WTN_DATA_IO, 1);
            DelayUs(1500);
            gpio_set_level(WTN_DATA_IO, 0);
            DelayUs(500);
        }else{
            gpio_set_level(WTN_DATA_IO, 1);
            DelayUs(500);
            gpio_set_level(WTN_DATA_IO, 0);
            DelayUs(1500);
        }
        cmd >>= 1;
    }
    gpio_set_level(WTN_DATA_IO, 1);
    DelayUs(2000);
}